package com.farewell.blog.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.farewell.blog.entity.QueryBean;
import com.farewell.blog.entity.SearchBlog;
import com.farewell.blog.pojo.Blog;

import java.util.List;

/**
 * @author Farewell
 * @date 2021/2/8
 */
public interface BlogService {
    /**
     * 增加访问量
     *
     * @param blog 博客
     */
    void updateViews(Blog blog);

    /**
     * 通过同一typeId并分页获取blog集合
     *
     * @param queryBean 分页对象放typeId
     * @return blog集合
     */
    Page<Blog> listBlogByTypeId(QueryBean queryBean);

    /**
     * 通过typeId获取同一分类下的blog集合
     *
     * @param typeId 分类id查询条件
     * @return blog集合
     */
    List<Blog> getBlogListByTypeId(Long typeId);

    /**
     * 通过主键id查找博客
     *
     * @param id 主键
     * @return 博客对象
     */
    Blog getBlogById(Long id);

    /**
     * 条件查询获取博客列表
     *
     * @param queryBean  分页参数
     * @param searchBlog 条件
     * @return 博客列表
     */
    Page<Blog> getBlogsBySearch(QueryBean queryBean, SearchBlog searchBlog);

    /**
     * 获取默认博客列表
     *
     * @param queryBean 分页对象
     * @return 博客列表
     */
    Page<Blog> listBlog(QueryBean queryBean);

    /**
     * 新增博客
     *
     * @param blog 博客对象
     */
    void saveBlog(Blog blog);

    /**
     * 更新博客
     *
     * @param blog 博客对象
     */
    void updateBlog(Blog blog);

    /**
     * 通过条件查询blog对象
     *
     * @param blog 封装条件的blog对象
     * @return 查询结果blog
     */
    Blog getBlog(Blog blog);

    /**
     * 通过id删除对象
     *
     * @param id blog的id
     */
    void deleteBlog(Long id);
}
